--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / rnode / transports / Transport.js
Displaying Raw • Download
meshchatx/src/frontend/js/rnode/transports/Transport.js c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 1.27 KB
T8b949e/**
* Abstract transport contract used by RNode flasher.
*
* Concrete transports (Web Serial, Web Bluetooth NUS, WiFi OTA, ...) expose
* the same shape as a Web Serial port:
*
* - readable: ReadableStream<Uint8Array>
* - writable: WritableStream<Uint8Array>
* - open(opts): Promise<void>
* - close(): Promise<void>
*
* This lets RNode.js and Nrf52DfuFlasher.js stay transport-agnostic.
*
* Concrete classes should also expose:
* - kind: short string identifier ("serial", "bluetooth", "wifi")
* - canFlashEsp32(): boolean
* - canFlashNrf52(): boolean
* - canManageDevice(): boolean
* - description(): short user-facing label
*/
Tff7b72export Tff7b72default Tff7b72class Te6edf3Transport Tb4b4b4{
Tff7b72constructorTb4b4b4(Te6edf3kindTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3kind Tff7b72= Te6edf3kindTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3readable Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3writable Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72async Te6edf3openTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3kindTffd700}Ta5d6ff transport: open() not implementedTa5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72async Te6edf3closeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3kindTffd700}Ta5d6ff transport: close() not implementedTa5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3canFlashEsp32Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3canFlashNrf52Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3canManageDeviceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3canOtaFlashTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3descriptionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3kindTb4b4b4;
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────